package com.terrier.ui.effects
{
    import flash.display.DisplayObject;
    import flash.events.IEventDispatcher;

    /**
     * 抽象特效接口
     *
     * @author Jarvis.weng
     */
    public interface IWxAbstractEffect extends IEventDispatcher
    {
        //---------------------------------------------------
        //
        // Properties
        //
        //---------------------------------------------------

        /**
         * 该特效所作用的对象
         */
        function get target():DisplayObject;
        function set target(value:DisplayObject):void;

        /**
         * 特效 是否已经暂停
         */
        function get paused():Boolean;
        function set paused(value:Boolean):void;

        /**
         * 特效 是否正在运行
         */
        function get running():Boolean;
		
		function get runTime():Number;
		
		function get startEventParams():Object;
		
		function set startEventParams(value:Object):void;
		
		function get updateEventParams():Object;
		
		function set updateEventParams(value:Object):void;
		
		function get stopEventParams():Object;
		
		function set stopEventParams(value:Object):void;

        //---------------------------------------------------
        //
        // Methods
        //
        //---------------------------------------------------

        /**
         * 特效开始
         */
        function start():void;

        /**
         * 特效结束
         */
        function stop():void;

        /**
         * 撤销特效
         */
        function restore():void;
    }
}